#pragma once
#include "qthread.h"
struct RegResultStruct;
class middialog;
class RegistrationClass;
class QString;
class QRegAlgorithmRunner :
	public QThread
{
	Q_OBJECT
public:
	QRegAlgorithmRunner();
	~QRegAlgorithmRunner(void);

	/*
	 * type: a temporary solution. should be optimized by using function pointers
	 */
void SetAlgorithmRunner(RegistrationClass * regClass,QString f1, QString f2, int type, int pointX = 0, int pointY = 0,int centerX =  -1, int centerY = -1, int angle = 0);

		 
protected:
	void run();
	RegistrationClass * reg;
	QString filename1;
	QString filename2;

	int algorithmType;
	int PointX;
	int PointY;
	int CenterX;
	int CenterY;
	int Angle;

signals:
	void logUpdated(QString s);
};

